#! /bin/bash
#El propósito de este comando es preparar el entorno de ejecución del ambiente

if [ -z "${GRUPO}" -o -z "${BINDIR}" ]; then
        source Grabar_L
else
        auxDir="${GRUPO}"/"${BINDIR}"
        source "${auxDir}"/Grabar_L
fi


camposConf="="
logGrabar="Iniciar_B"
confVars=( "GRUPO" "CONFDIR" "BINDIR" "MAEDIR" "ARRIDIR" "ACEPDIR" "RECHDIR" "REPODIR" "PROCDIR" "LOGDIR" "LOGEXT" "LOGSIZE" "DATASIZE" )

function unsetEnvironment
{
for var in ${confVars[@]}; do
    unset $var
done
}

#---------------------------------------- Ejecucion Iniciar_B ----------------------------------------

# Loggeamos inicio:
#./Grabar_L $logGrabar "Inicializando entorno de ejecución." I
																																export RETURN=2
clear
echo "***********************************************************"
echo "**************************RESERVAS*************************"
echo "***********************************************************"; echo ""
echo "Inicializando sistema..."; Grabar_L $logGrabar "Inicializando sistema" "I"

# Verificamos que las variables de ambiente no esten seteadas
echo ""; echo "Verificando preinicializacion..."; Grabar_L "$logGrabar" "Verificando preinicializacion" "I"
source verifyInstall.sh -i $logGrabar
if [ $RETURN == 1 ]; then
    echo "Ambiente ya inicializado, si desea reiniciar, termine la sesion y vuelva a ejecutar el programa."
    Grabar_L "$logGrabar" "Ambiente inicializado, reiniciar sesion" "W"
    echo ""; echo "SALIENDO..."; echo ""
    Grabar_L "$logGrabar" "Saliendo del programa" "W"
    return 1
else
    Grabar_L "$logGrabar" "Ambiente listo para iniciarse" "I"
    echo "OK!"
fi

#Verificamos que exista el archivo de configuracion y que las variables seteadas en el mismo no esten vacias
# En caso afirmativo, las creamos como variables de ambiente
echo ""; echo "Verificando archivos de configuracion y variables..."; Grabar_L "$logGrabar" "Verificando .conf y variables" "I"
badVars=(); source verifyInstall.sh -c $logGrabar
if [ $RETURN == 0 ]; then
    Grabar_L "$logGrabar" ".conf y variables bien formadas." "I"
    echo "OK!"
else
    echo ""; echo "SALIENDO..."; echo ""
    Grabar_L "$logGrabar" "Saliendo del programa" "W"
    unsetEnvironment
    return 1
fi

# Verificamos que los directorios existan
echo ""; echo "Verificando directorios..."; Grabar_L "$logGrabar" "Verificando directorios" "I"
source verifyInstall.sh -d "$logGrabar"
if [ $RETURN == 0 ]; then
    Grabar_L "$logGrabar" "Directorios existentes." "I"
    echo "OK!"
else
    echo ""; echo "SALIENDO..."; echo ""; Grabar_L "$logGrabar" "Saliendo del programa" "W"
    unsetEnvironment
    return 1
fi

# Verificamos la existencia de los archivos maestros y sus permisos
echo ""; echo "Verificando archivos maestros..."; Grabar_L "$logGrabar" "Verificando master files" "I"
source verifyInstall.sh -f $logGrabar
if [ $RETURN == 0 ]; then
    Grabar_L "$logGrabar" "Archivos maestros hallados." "I"
    echo "OK!"
else
    echo ""; echo "SALIENDO..."; echo ""; Grabar_L "$logGrabar" "Saliendo del programa" "W"
    unsetEnvironment
    return 1
fi

# Interaccion para correr Recibir_B

correct=false

echo ""; echo "Comenzando..."; Grabar_L "$logGrabar" "Listo para correr demonio." "I"

while [ $correct == false ]; do
    echo ""; echo "Desea efectuar la activación de Recibir_B? Si - No"
    read ans
    if [ -z $ans ]; then
	echo "Respuesta inválida."
    elif [ $ans == "Si" ]; then
   	Grabar_L $logGrabar "Corriendo demonio automaticamente" "I"
	echo ""; echo "Corriendo demonio..."
	"$GRUPO"/"$BINDIR"/Start_D "./Recibir_B.sh" "Start_D" &
	correct=true
    elif [ $ans == "No" ]; then
	echo ""; echo "Para correr el demonio manualmente, debe escribir desde la terminal:"
	echo "./Start_D ./Recibir_B.sh Start_D" ; echo ""
	echo "Para detenerlo, use el comando:"; echo "./Stop_D Recibir_B.sh /Stop_D"; echo ""
	Grabar_L $logGrabar "Se correra el demonio manualmente" "I"
	correct=true
    else
	echo "Respuesta inválida."
    fi
done

echo ""
